#ifndef QxWellInfoDataModel_HPP
#define QxWellInfoDataModel_HPP

#include <QObject>

#include <QPointF>
#include <QVector>

class QxWellDataIO;
class QxWellLogDataModel;

class QxWellInfoDataModel : public QObject
{
  Q_OBJECT

public:

  QxWellInfoDataModel();
  QxWellInfoDataModel( const QString& filename );
  ~QxWellInfoDataModel();

  QxWellDataIO* dataIO();
  void setDataIO( QxWellDataIO* );

  const QString& workspaceName() const;
  void setWorkspaceName( const QString& );

  const QString& wellName() const;
  void setWellName( const QString& );

  const QPointF& location() const;
  void setLocation( const QPointF& );

  float startDepth() const;
  void setStartDepth( float );

  float stopDepth() const;
  void setStopDepth( float );

  float stepDepth() const;
  void setStepDepth( float );

  float nullValue() const;
  void setNullValue( float );

  const QVector<QxWellLogDataModel*>& wellLogs() const;
  void setWellLogs( const QVector<QxWellLogDataModel*>& );

private:

  class QxWellInfoDataModelPrivate;
  QScopedPointer<QxWellInfoDataModelPrivate>         _pd;
};

#endif // QxWellInfoDataModel_HPP